///*2016-08-20 @ Moda */
///* 该文件包括 购彩大厅动能 ：1 彩票左边menu列表； 2 头部html; 3 定义了全局的刷新余额的方法： window.refreshAmount */
/*
 * 1. 定时刷新余额功能（60秒一次）
 * 2. 定时刷新彩票 （1秒一次）
 * 3. 彩票列表带有排序规则，如需求改彩票顺序，则修改 lottery_.newSortArr（按照后台接口的顺序排序，排序后的顺序在 newSortArr 里 ）
 * 4. 左边menu中菜单的张开收起，对应的右边彩票需要同步切换（只针对 购彩大厅主页）
 * 5. 检查登录 （头部样式）
 * 6. 修改头部的名称（针对购彩大厅主页 之外的页面）
 * */


// 全局变量： 所有彩种
window.lottery = {
    // newSortArr 相当于 数据字典： 数组元素的顺序 即为 彩种 期望的 排序的 顺序 ( 注：这里的 name 并未被代码使用，仅增加可读性方便后期排序的扩展 )
    newSortArr : [],   ///*{id:"999",name:"新春红包"}, */
    gameIds:"", //（周期：永久）
    obj:{}  //key:id;  value:{ lottery }
};
lottery.newSortArr= CD_newSortArr;
//_lottery_menu 是该文件的命名空间
window._lottery_menu = {
    // 获得 带有sort 顺序的彩种
    ajax_1 : function ( sortType ){
        //新的排序规则
        var temp_1_gameIds = "_";
        for( var i = 0 ; i< lottery.newSortArr.length; i++ )
        {
            var id = lottery.newSortArr[i].id ;
            temp_1_gameIds += id + "_";
        }
        $.ajax({
            'url': '/index/ajaxGetAllGameStatus.html',
            'dataType': 'json',
            'type': 'post',
            'success': function (data) {
                var count = data.count;
                if (count === 0)
                {
                    $("#live-main-list").html("");
                    return;
                }
                for ( var i = 0; i < count; i++ )
                {
                    var sort = data.games[i].sort;
                    var id = data.games[i].id;
                    lottery.gameIds += id + ",";
                    lottery.obj[id] = data.games[i];
                    if( temp_1_gameIds.indexOf( "_"+id+"_" ) < 0 )
                    {
                        //如果是新彩种，则未被收入在newSortArr 数组内 ，进入 if 语句内
                        lottery.newSortArr.push({"id":id,"name":data.games[i].name});
                    }
                }
                _lottery_menu.right_timeList();
            },
            error: function (XMLHttpRequest, status) {
                _alert("请求超时");
            }
        });
    },
    ////* 获取彩种列表开奖倒计时和上期开奖号码 */
    right_timeList : function ( gameIdStr ){
        var gameIdStr = gameIdStr?gameIdStr:"" ; //enableGameIdArr.join(',');
        $.ajax({
            'url': '/index/getAllGamePeriodAndEndTime.html',
            'dataType': 'json',
            'data':{'gameId':gameIdStr},
            'type': 'post',
            'success': function (data) {
                try
                {
                    if ( session_timeout(data) === false )
                    {
                        return false;
                    }
                } catch(e){ console.log(e);}
                var arrOuter = [] ;
                var static_value = {};

                if( data.hasOwnProperty("id") )
                {//考虑不是数组的情况（特殊情况），正常情况不会进去下面代码
                    var id = data.id ;
                    var obj = data;
                    data = {};
                    data[id] = obj;
                }
                //lottery.newSortArr是一个包含排序顺序的数组，数组元素的顺序正是彩种的排序
                for( var i = 0 ; i < lottery.newSortArr.length ; i++ )
                {
                    var id = lottery.newSortArr[i].id ;

                    if( !data.hasOwnProperty(id) ){
                        continue;
                    }
                    if( !lottery.obj.hasOwnProperty(id) ){
                        continue;
                    }
                    var link = lottery.obj[id].link ;
                    var name = lottery.obj[id].name ;
                    var issue = data[id].issue ;  //期数
                    var time = data[id].time ;  //关盘剩余秒数
                    var openTime = data[id].openTime ;  //上期开奖剩余秒数
                    var openNum = data[id].openNum ;  //开奖号码
                    var temp = '<div class="showhide-38 ele-live-layout" id="lot'+id+'" data-id="'+id+'" data-issue="'+issue+'" data-time="'+time+'" data-opentime="'+ openTime +'" data-opennum="'+ openNum +'"  data-lasttimer="'+ ( new Date().getTime() )+'">'
                        +lottery_innerHtml( id ,issue,time,openNum,link,name,lottery.obj[id].listDesc )
                        +'</div>';
                    arrOuter.push(temp);
                }
                $("#ele-live-wrap>div").html( arrOuter.join("") );
                $("#demo_right").css("display","none");
                timer();
            }
        });
        //这是一个工具方法：将时间数字转成 例如 00：23：44 格式的 html
        function time_html( time_str )
        {
            var time = time_str - 0 ;
            var time_obj = {h:"00",m:"00",s:"00"};
            if( time > 0 )
            {
                var h = parseInt(time/3600) ;
                var m = parseInt( (time-h*3600)/60 ) ;
                var s =  time - h*3600 - m*60 ;
                function munChange( num )
                {
                    return  ( num == 0) ? "00" :  ( ( num >= 10 )?num:("0"+num) )  ;
                }
                time_obj.h = munChange(h) ;
                time_obj.m = munChange(m) ;
                time_obj.s = munChange(s) ;
            }
            return '<span class="leaveh-1">'+time_obj.h+'</span><span class="interval"> ：</span><span class="leavem-1">'+time_obj.m+'</span><span class="interval"> ：</span><span class="leaves-1">'+time_obj.s+'</span>';
        }

        //设置定时器，每秒 刷新一次
        function timer(){
            var dealTimer = function(){
                //返回：需要被查询的彩票的id
                var get_gameIdStr = function(){
                    ///*遍历所有彩票，涮选出 符合 查询条件的 gameIdStr （需要被查询的彩票的id）  */
                    var gameIdStr = ""; //即将用来查询的参数：gameIdStr ，（即：需要跟新的彩票的id的集合）
                    for(var p in lottery.obj )
                    {
                        var time_str = $("#lot"+p).data("time") - 1 ;
                        $("#lot"+p).data("time",time_str);
                        $("#lot"+p+" .gct_time_now_l").html(time_html( time_str )); // 修改 倒计时的 html内容
                        $("#lot"+p).data("opentime",$("#lot"+p).data("opentime")-1);
                        var currentTime =  new Date().getTime(); //当前时间
                        //当 （关盘时间小于等于0 ），调用接口
                        if( $("#lot"+p).data("time") <= 0 )
                        {
                            //当前id对应的彩票正在 处于上一个ajax请求中，还未结束时，无须重新查询； 当前时间距离最新一次查询的时间间隔相差大于60秒;要满足这2种条件； ||
                            if( $("#lot"+p).data("ajax") != "true" &&  ( ( currentTime -  $("#lot"+p).data("lasttimer") ) / 1000 >= 50 ) )
                            {
                                gameIdStr += p+",";
                                $("#lot"+p).data("ajax","true");  // true，表示 ajax 正在进行。
                            }
                        }
                        // 或者 （ 开奖时间小于等于0并且；开奖号码为空；上一个ajax请求已结束）,要满足这3种条件；
                        if(  $("#lot"+p).data("opentime")<= 0 && $("#lot"+p).data("opennum") == "" && $("#lot"+p).data("ajax") != "true"  )
                        {
                            //时间小于 -50 但 距离上次查询 大于60秒的间隔 ，
                            if(  ( ( currentTime -  $("#lot"+p).data("lasttimer") ) / 1000 >= 45 ) ) // $("#lot"+p).data("opentime") >= -50 || //当开奖倒计时 时间为 [-50,0] 之间，或者，
                            {
                                gameIdStr += p+",";
                                $("#lot"+p).data("ajax","true");  // true，表示 ajax 正在进行。
                            }
                        }
                    }
                    return gameIdStr;
                };
                try{
                    var gameIdStr = get_gameIdStr();
                    //如果没有满足条件的id则不执行ajax，不浪费ajax请求，（满足条件的id指的是， 倒计时为0的id）
                    if( gameIdStr.length == 0 )
                    {
                        return;
                    }
                    (function ajaxData(gameIdStr){
                        $.ajax({
                            'url': '/index/getAllGamePeriodAndEndTime.html',
                            'dataType': 'json',
                            'data':{'gameId':lottery.gameIds},
                            'type': 'post',
                            'success': function (data) {
                                try
                                {
                                    if ( session_timeout(data) === false )
                                    {
                                        return false;
                                    }
                                } catch(e){ console.log(e);}
                                var arrOuter = [] ;
                                var static_value = {};
                                for( var  p in data )
                                {
                                    var id = p ;
                                    if( !lottery.obj.hasOwnProperty(id) ){
                                        continue;
                                    }
                                    var link = lottery.obj[id].link ;
                                    var name = lottery.obj[id].name ;
                                    var issue = data[p].issue ;  //期数
                                    var time = data[p].time ;  //关盘剩余秒数
                                    var openTime = data[p].openTime ;  //上期开奖剩余秒数
                                    var openNum = data[p].openNum ;  //开奖号码
                                    $("#lot"+p).html( lottery_innerHtml( id ,issue,time,openNum,link,name,lottery.obj[id].listDesc ) );
                                    $("#lot"+p).data("issue",issue);
                                    $("#lot"+p).data("time",time);
                                    $("#lot"+p).data("opentime",openTime);
                                    $("#lot"+p).data("opennum",openNum);
                                    $("#lot"+p).data("lasttimer",new Date().getTime()); // 记录当前彩票的最后一次 ajax 查询的时间，用于后面计算时间间隔。
                                    $("#lot"+p).data("ajax","false");         // false，表示 ajax已经结束。
                                }
                            }
                        });
                    })(gameIdStr); ///* gameIdStr ： 满足 需要被查询的彩票的id*/
                }catch(e){}
            };
            setInterval(dealTimer,1000);
        }
        //这是一个工具方法：返回右边列表中的，单个彩票div的 innerHTML
        function lottery_innerHtml( id ,issue,time,openNum,link,name,desc )
        {
            var openNum_HTML = "";
            if( openNum && openNum.split("|").length>0 )
            {
                var arr = openNum.split("|") ;
                if(  arr.length > 7 )
                {//如果开奖号码大于7个球球
                    var class_temp = "";
                }
                else
                {
                    var class_temp = " class=\"big_ball\" ";
                }
                if((id==41||id=="41")||(id==42||id=="42"))
                {//北京28
                    function getColorClass( num )
                    {
                        var ball_color={",1,4,7,10,16,19,22,25,":"green",",2,5,8,11,17,20,23,26,":"blue",",3,6,9,12,15,18,21,24,":"red",",2,5,8,11,17,20,23,26,":"blue",",0,13,14,27,":"grey"};
                        for( var k in ball_color )
                        {
                            if(k.indexOf(","+parseInt(num)+",")>=0)
                            {
                                return "ball_"+ball_color[k];
                            }
                        }
                    }
                    openNum_HTML += "<span class=\"fl\">上期开奖</span><div class=\"show-gd1\"><ul"+class_temp+">";
                    openNum_HTML+='<li class="ball_other">'+arr[0]+'</li><span>+</span><li class="ball_other">'+arr[1]+'</li><span>+</span><li class="ball_other">'+arr[2]+'</li><span>=</span><li class="'+getColorClass(arr[3])+'">'+arr[3]+'</li>';
                    openNum_HTML += "<span class=\"tabulousclear\"></span></ul></div>";
                }else
                {
                    openNum_HTML += "<span class=\"fl\">上期开奖</span><div class=\"show-gd1\"><ul"+class_temp+">";
                    for( var q  = 0 ; q < arr.length ; q++ )
                    {
                        if(arr[q]){openNum_HTML += '<li flag="normal">'+arr[q]+'</li>'}
                    }
                    openNum_HTML += "<span class=\"tabulousclear\"></span></ul></div>";
                }
            }
            else
            {
                openNum_HTML = "<span class=\"fl\">上期开奖</span><span class='tip'>正在开奖</span>";
            }
            var kjzs_link = "/trend/index.html?gameId="+id;
            var kjjg_link = "/draw/detail.html?id="+id;
            if(id == 999||id == '999')
            {
                var rebTips = desc?desc:"2017年新年开门红";
                return '<div class="lot-wrap"><div class="lott-top"><div class="lott-name">'
                    + '<a class=\"lott-imgbox\" onclick="__openWin(\'lottery_hall\',\'' + link + '\');" ><img src=\"' + _prefixURL.common + '/img/lottery/icon/' + id + '.png\" class=\"mCS_img_loaded\"></a>'
                    + '<div class="lott-name-righ">'
                    + '<h3>' + name + '</h3>'
                    + '<p>' + rebTips + '</p>'
                    + '<div>'
                    + '<a class="lot-btn yh" onclick="hongbao.hongbaorules()">玩法规则</a><a class="lot-btn yh" onclick="hongbao.hongbaohistory()">历史红包</a>'
                    + '</div></div></div><div class="lot-fore">'
                    + '</div></div><div class="lott-bot">'
                    + '<a class="lot-btn_999 lot-btn" onclick="__openWin(\'lottery_hall\',\'' + link + '\')">立即抢红包</a>'
                    + '</div></div>';
            }else
            {
                return '<div class="lot-wrap"><div class="lott-top"><div class="lott-name">'
                    + '<a class=\"lott-imgbox\"  onclick="__openWin(\'lottery_hall\',\'' + link + '\');" ><img src=\"' + _prefixURL.common + '/img/lottery/icon/' + id + '.png\" class=\"mCS_img_loaded\"></a>'
                    + '<div class="lott-name-righ">'
                    + '<h3>' + name + '</h3>'
                    + '<p>第 ' + issue + ' 期</p>'
                    + '<div class="gct_time"><div class="gct_time_now"><div class="gct_time_now_l">'
                    + time_html(time)
                    + '</div></div></div></div></div><div class="lot-fore">'
                    + openNum_HTML
                    + '</div></div><div class="lott-bot"><a onclick="__openWin(\'lottery_hall\',\'' + kjjg_link + '\');" >开奖结果</a><a onclick="__openWin(\'lottery_hall\',\'' + kjzs_link + '\');"  target="_blank">开奖走势</a>'
                    + '<a class="lot-btn" onclick="__openWin(\'lottery_hall\',\'' + link + '\')">立即投注</a>'
                    + '</div></div>';
            }
        }
        if( $(parent.document).find("#live-main-list").length > 0 )
        {
            ///** 【热门彩种】彩票menu ，张开和收起  **/
            $(parent.document).find("#live-main-list").on("click","#hot_lottery .main-tit",function(){
                if(  $(this).find("i").attr("class").indexOf("icon-attr-up") >=0  )
                {
                    $("#ele-live-wrap>div>.ele-live-layout").hide();
                    $("#lot"+parent.$(this).data("gameIdStr").split(",").join(",#lot")).show();
                }
                else
                {
                    //显示全部彩种
                    $("#ele-live-wrap>div>.ele-live-layout").show();
                }
            });
            ///** 【高频/低频】彩票menu ，张开和收起  **/
            $(parent.document).find("#live-main-list").on("click",".main-top",function(){
                if(  $(this).find("i").attr("class").indexOf("icon-attr-up") >=0  )
                {
                    //显示部分彩种： （ 比如： 时时彩， 快三， 十一选五 ）
                    $("#ele-live-wrap>div>.ele-live-layout").hide();
                    $("#lot"+parent.$(this).data("gameIdStr").split(",").join(",#lot")).show();
                }
                else
                {
                    //显示全部彩种
                    $("#ele-live-wrap>div>.ele-live-layout").show();
                }
            });
            ///** 【高频   ----  二级菜单】彩票menu ，张开和收起  **/
            $(parent.document).find("#live-main-list").on("click"," ul.gao-ul .nav-li",function(){
                if( $(this).find(".icon-attr-down").length == 0 )
                {
                    return;
                }
                if(  $(this).find(".icon-attr-down").attr("class").indexOf("icon-attr-up") >=0  )
                {
                    //显示部分彩种： （ 比如： 时时彩， 快三， 十一选五 ）
                    $("#ele-live-wrap>div>.ele-live-layout").css("display","none");
                    try{
                        $("#lot"+parent.$(this).data("gameIdStr").split(",").join(",#lot")).css("display","block");
                    }catch(e)
                    {
                        $("#ele-live-wrap>div>.ele-live-layout").css("display","block");
                    }
                }
                else
                {
                    //显示全部彩种
                    $("#ele-live-wrap>div>.ele-live-layout").css("display","block");
                }
            });
        }
    }
};

var hongbao = {
    hongbaorules : function (){
        $("#HB_blockPage2").css("display","block");
        $("#HB_blockPage2").children().css("display","block");
        if($("#HB_blockPage2 .c1").data("clickevent")!="true")
        {
            $("#HB_blockPage2 .c1,#HB_blockPage2 [name=btn_sure]").click(function(){
                $("#HB_blockPage2").css("display","none")
            });
            $("#HB_blockPage2 .c1").data("clickevent","true");
        }
    },
    show_history_list : function(){
        var perpage = $("#pagehbHistoryRecordCount").val();
        var Index = $("#hbhistorypageIndex").val();

        var param = 'pageCount=' + perpage + '&pageIndex=' + Index;
        $.ajax({
            'url': '/hongbao/getHisHb.html',
            'dataType': 'json',
            'type': 'get',
            'data': param,
            error: function (XMLHttpRequest, status) {
                _alert("请求超时");
            }
        }).done(function(data)
        {
            if(data.hasOwnProperty("Records")&& data.Records.length>0)
            {
                $("#HB_blockPagehistory").css("display","block");
            }
            else
            {
                _alert("暂无内容或登录超时");
                return;
            }

            var hongbaolistli = '';
            for(var i=0;i<data.RecordCount;i++)
            {

                var sLuckyCode = data.Records[i].sLuckyCode;
                if(!sLuckyCode)
                {
                    sLuckyCode = "<span>正在开奖...</span>";
                }
                var show_history_onclick = " onclick=\"hongbao.getLast50Op(\'"+data.Records[i].iGameId+"\',\'"+data.Records[i].sGamePeriod+"\')\" ";
                var hideuserid = data.Records[i].sLuckyUserID.substring(0,3)+"****";
                hongbaolistli += '<tr title="点击查看详情"><td>'+data.Records[i].sGameName +'</td><td class="binfo" '+show_history_onclick+'>'+sLuckyCode+'</td><td>'+data.Records[i].fBonus+'</td><td '+show_history_onclick+'>'+data.Records[i].sGamePeriod+'</td><td>'+hideuserid+'</td></tr>';

            }
            $('#historyhongbaotable tbody').html(hongbaolistli);
            var total = data.RecordCount;
            var page = '';
            $("#hbhistorypageIndex").html("");
            for (var j = 1; j <= data.PageCount; j++) {
                var sel = (j == data.PageIndex) ? 'Selected' : '';
                page += '<option value="' + j + '" ' + sel + '>' + j + '</option>';
            }
            $("#hbhistorypageIndex").html(page);
        });
    },
    getLast50Op:function(gameId,issue){
        $("#HB_blockPage_3 [name=content] tbody").html("");
        $("#HB_blockPage_3 [name=issue]").text(issue);
        $.ajax(
            {url:"/hongbao/getLast50.html",
                type:'get',
                data:{gameId:gameId,issue:issue},
                dataType: 'JSON'}
        ).done(function(data)
        {

            if(data.hasOwnProperty("Records") && data.Records instanceof  Array && data.Records.length>0)
            {

                var str = [];
                for(var k =0 ; k<data.Records.length;k++ )
                {
                    var tp = data.Records[k];
                    var hideuserid =tp.sUserID.substring(0,3)+"****";
                    str.push("<tr><td>"+tp.dBetTime+"</td><td>"+hideuserid+"</td></tr>");
                }
                if(str.length>0)
                {
                    $("#HB_blockPage_3 [name=content] tbody").html(str.join(""));
                }else
                {
                    $("#HB_blockPage_3 [name=content] tbody").html("<p>暂无数据...</p>");
                }
                $("#HB_blockPage_3").show();
                $("#HB_blockhistoryPage_1").hide();
            }
        });
        if($("#HB_blockPage_3").data("event")=="true")
        {
            return;
        }
        $("#HB_blockPage_3 .block_close").click(function()
        {
            $("#HB_blockPage_3").hide();
            $("#HB_blockPagehistory").show();
            $("#HB_blockhistoryPage_1").show();
        });
        $("#HB_blockPage_3").data("event","true");

    },
    hongbaohistory : function(){
        var pageCount = 10;
        var pageIndex = 1;
        $.ajax({
            'url': '/hongbao/getHisHb.html?pageCount='+pageCount+'&pageIndex='+pageIndex,
            'dataType': 'json',
            'type': 'get',
            'success': function (data) {
                    $("#HB_blockPagehistory").css("display", "block");
                    $("#HB_blockPagehistory").children().css("display", "block");
                    $("#HB_blockhistoryPage_1").css("display", "block");
                if(data.hasOwnProperty("Records") && data.Records instanceof  Array && data.Records.length>0) {
                    var hongbaolistli = '';
                    for (var i = 0; i < data.RecordCount; i++) {
                        var sLuckyCode = data.Records[i].sLuckyCode;
                        if (!sLuckyCode) {
                            sLuckyCode = "<span>正在开奖...</span>";
                        }
                        var show_history_onclick = " onclick=\"hongbao.getLast50Op(\'" + data.Records[i].iGameId + "\',\'" + data.Records[i].sGamePeriod + "\')\" ";
                        var hideuserid = data.Records[i].sLuckyUserID.substring(0, 3) + "****";
                        hongbaolistli += '<tr><td>' + data.Records[i].sGameName + '</td><td title="点击查看详情" class="binfo hongbaodeail" ' + show_history_onclick + '>' + sLuckyCode + '</td><td>' + data.Records[i].fBonus + '</td><td title="点击查看详情" class="hongbaodeail" ' + show_history_onclick + '>' + data.Records[i].sGamePeriod + '</td><td>' + hideuserid + '</td></tr>';
                    }

                    var page = '';
                    for (var j = 1; j <= data.PageCount; j++) {
                        var sel = (j == data.PageIndex) ? 'Selected' : '';
                        page += '<option value="' + j + '" ' + sel + '>' + j + '</option>';
                    }
                    $("#hbhistorypageIndex").html(page);

                    $('#historyhongbaotable tbody').html(hongbaolistli);
                }else{
                    $("#page_areahistory").hide();
                }
                $("#HB_blockPagehistory .block_close").click(function(){
                    $("#HB_blockPagehistory").hide();
                });


            },
            error: function (XMLHttpRequest, status) {
                _alert("请求超时");
            }
        });
    }
};
$(function(){
    _lottery_menu.ajax_1();
});

